package gm.data;

import java.util.LinkedList;

/**
 * Tű útvonalának osztálya.
 *
 * @author imruf84
 */
public class HolePath extends LinkedList<HolePathElement> {

    /**
     * Szín.
     */
    private final HoleColor color;
    /**
     * Index (a szerverre való küldéshez kell).
     */
    public int index;

    /**
     * Konstruktor.
     *
     * @param color szín
     */
    public HolePath(HoleColor color) {
        this.color = color;
    }

    /**
     * Szín lekérdezése.
     *
     * @return szín
     */
    public HoleColor getColor() {
        return this.color;
    }

    /**
     * Átalakítás alapvető objektummá szerverre való küldéshez.
     *
     * @return alapadatokat tartalmazó objektum
     */
    public BasicWoolData toBasicWoolData() {
        BasicWoolData bwd = new BasicWoolData();
        bwd.color[0] = this.getColor().getColor().getRed();
        bwd.color[1] = this.getColor().getColor().getGreen();
        bwd.color[2] = this.getColor().getColor().getBlue();
        bwd.symbol = this.getColor().getSymbol();
        bwd.woolIndex = this.index;
        bwd.count = this.size();

        return bwd;
    }

    @Override
    public String toString() {
        String result = "";

        for (HolePathElement hpe : this) {
            result = result.concat(hpe.toString());
        }

        return result;
    }
}
